// 线性求逆元
// 给定n、p，求1∼n中所有整数在模p意义下的乘法逆元
// 1 <= n <= 3 * 10^6
// n < p < 20000528
// 测试链接 ：https://www.luogu.com.cn/problem/P3811
// 相关帖子 ：https://oi-wiki.org/math/number-theory/inverse/
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

const int MAXN = 3000001;
int inv[MAXN];
int n, p;

inline int read()
{
    char ch = getchar();
    int x = 0, f = 1;
    while(ch < '0' || ch > '9')
    {
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9')
    {
        x = 10 * x + ch - '0';
        ch = getchar();
    }
    return f * x;
}

int main()
{
    n = read(), p = read();
    inv[1] = 1;
    puts("1");
    for(int i = 2; i <= n; ++i)
    {
        inv[i] = (long long)(p - p / i) * inv[p % i] % p;
        printf("%d\n", inv[i]);
    }

    return 0;
}